from datetime import datetime, timedelta
import os
import time
import shutil


def del_file(dir, fronthours):
    """
    :param dir: 要删除文件的目录路径
    :param fronthours: 指定当前时间的前几小时
    :return:
    """
    # 获取文件夹下所有文件和文件夹
    files = os.listdir(dir)
    # 过期时间
    starttime = datetime.now()
    expire_time = str(starttime + timedelta(hours=-fronthours)).split('.')[0]

    for file in files:
        filePath = dir + file
        # 最后一次修改的时间
        last1 = os.stat(filePath).st_mtime
        # 将时间戳格式化成时间格式的字符串
        filetime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(last1))
        # 小于过期时间的文件都删除
        if expire_time > filetime:
            if os.path.isfile(filePath):
                os.remove(filePath)
            else:
                shutil.rmtree(filePath)

